package com.atsmart.app.utils;

import java.io.Serializable;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;

/**
 * @author hubiao
 *
 */
public class IntentUtil {
    private static Intent getIntent(Context context, Class<?> cls) {
        return new Intent(context, cls);
    }

    private static Intent getSerializableIntent(Context packageContext,
            Class<?> cls, String extraKey, Serializable value) {
        return getIntent(packageContext, cls).putExtra(extraKey, value);
    }

    public static void redirectToNext(Context context, Class<?> cls) {
        context.startActivity(getIntent(context, cls));
    }

    /*
     * liujingjing
     */
    public static void redirectToNext(Context context, Class<?> cls, int flag) {
        context.startActivity(getIntent(context, cls).addFlags(
                Intent.FLAG_ACTIVITY_CLEAR_TOP).addFlags(
                Intent.FLAG_ACTIVITY_SINGLE_TOP));
    }

    public static void redirectToNext(Context context, Class<?> cls,
            Bundle bundle) {
        context.startActivity(getIntent(context, cls).putExtras(bundle));
    }

    public static void redirectToNext(Context packageContext, Class<?> cls,
            String extraKey, Serializable value) {
        packageContext.startActivity(getSerializableIntent(packageContext, cls,
                extraKey, value));
    }

    public static void redirectToNext(Context context, Class<?> cls, int tab, boolean bQuitNow){
        Intent intent = getIntent(context, cls);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        intent.putExtra("ExitNow", bQuitNow);
        intent.putExtra("TabID", tab);
        context.startActivity(intent);
    }

    public static void redirectToRoot(Context context, boolean bQuitNow, Bundle bundle){
//        Intent intent = getIntent(context, AppContent.getInstance().getRootActivityClass());
//        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
//        intent.putExtra("ExitNow", bQuitNow);
//        intent.putExtra("TabID", PersistentKeyUtil.TAB_INVALID);
//        if (bundle != null){
//            intent.putExtras(bundle);
//        }
//        context.startActivity(intent);
    }

    public static boolean shareInfo(Context context, String extraInfo){
        Intent intent = new Intent(Intent.ACTION_SEND);
        intent.setType("text/plain");
        intent.addCategory(Intent.CATEGORY_DEFAULT);
        intent.putExtra(Intent.EXTRA_TEXT, extraInfo);
        try {
             context.startActivity(intent);
             return true;
        }catch(Exception e){
            return false;
        }
    }

}
